diff options
Diffstat (limited to 'app/[lng]/evcp/(evcp)/approval/template/[id]/page.tsx')
| -rw-r--r-- | app/[lng]/evcp/(evcp)/approval/template/[id]/page.tsx | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/app/[lng]/evcp/(evcp)/approval/template/[id]/page.tsx b/app/[lng]/evcp/(evcp)/approval/template/[id]/page.tsx new file mode 100644 index 00000000..136b09eb --- /dev/null +++ b/app/[lng]/evcp/(evcp)/approval/template/[id]/page.tsx @@ -0,0 +1,58 @@ +import * as React from "react" +import { type Metadata } from "next" +import { notFound } from "next/navigation" + +import { getApprovalTemplate } from "@/lib/approval-template/service" +import { getApprovalLineOptions, getApprovalLineCategories } from "@/lib/approval-line/service" +import { ApprovalTemplateEditor } from "@/lib/approval-template/editor/approval-template-editor" +import { variables as configVariables } from "./config" + +interface ApprovalTemplateDetailPageProps { + params: Promise<{ + id: string + }> +} + +export async function generateMetadata({ params }: ApprovalTemplateDetailPageProps): Promise<Metadata> { + const { id } = await params + const template = await getApprovalTemplate(id) + + if (!template) { + return { + title: "템플릿을 찾을 수 없음", + } + } + + return { + title: `${template.name} - 템플릿 편집`, + description: template.description || `${template.name} 템플릿을 편집합니다.`, + } +} + +export default async function ApprovalTemplateDetailPage({ params }: ApprovalTemplateDetailPageProps) { + const { id } = await params + const [template, approvalLineOptions, approvalLineCategories] = await Promise.all([ + getApprovalTemplate(id), + getApprovalLineOptions(), + getApprovalLineCategories(), + ]) + + if (!template) { + notFound() + } + + return ( + <div className="flex flex-1 flex-col"> + {template && ( + <ApprovalTemplateEditor + templateId={id} + initialTemplate={template} + staticVariables={configVariables as unknown as Array<{ variableName: string }>} + approvalLineOptions={approvalLineOptions} + approvalLineCategories={approvalLineCategories} + /> + )} + </div> + ) +} + |
